﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;

namespace MiniFox.Security
{
    /// <summary>
    /// 
    /// </summary>
    [Obsolete]
    public class RijndaelCryptoService : SymmetricCryptoService
    {
        //internal const string CRYPT_NAME = "System.Security.Cryptography.Rijndael";
        /// <summary>
        /// 
        /// </summary>
        public RijndaelCryptoService() : this(Resources.Cryptography.Rijndael_Key, Resources.Cryptography.Rijndael_IV)
        {
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="key"></param>
        public RijndaelCryptoService(byte[] key) : this(key, null)
        {

        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="key"></param>
        public RijndaelCryptoService(string key) : this(key, null)
        {

        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="key"></param>
        /// <param name="paddingMode"></param>
        public RijndaelCryptoService(byte[] key, PaddingMode paddingMode) : this(key, null, paddingMode)
        {

        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="key"></param>
        /// <param name="paddingMode"></param>
        public RijndaelCryptoService(string key, PaddingMode paddingMode) : this(key, null, paddingMode)
        {

        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="key"></param>
        /// <param name="iv"></param>
        public RijndaelCryptoService(byte[] key, byte[] iv) : base(key, iv)
        {

        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="key"></param>
        /// <param name="iv"></param>
        public RijndaelCryptoService(string key, string iv) : base(key, iv)
        {

        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="key"></param>
        /// <param name="iv"></param>
        /// <param name="paddingMode"></param>
        public RijndaelCryptoService(byte[] key, byte[] iv, PaddingMode paddingMode) : base(key, iv, paddingMode)
        {

        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="key"></param>
        /// <param name="iv"></param>
        /// <param name="paddingMode"></param>
        public RijndaelCryptoService(string key, string iv, PaddingMode paddingMode) : base(key, iv, paddingMode)
        {

        }
        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        protected override SymmetricAlgorithm CreateAlgorithm()
        {
            return Rijndael.Create();
        }
    }
}
